/* eslint-env node */
const colors = require('picocolors')
const msgPath = process.argv[2]
const msg = require('fs').readFileSync(msgPath, 'utf-8').trim()
const commitRE =
  /^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|build|chore|types|release|deps|release-note|revert)(\(.+\))?: .{1,50}/
if (!commitRE.test(msg)) {
  console.log()
  console.error(
    `${colors.bgRed(colors.white('ERROR'))} ${colors.red('提交注释不符合规范')}\n\n` +
      `${colors.red('"提交注释需要正确的格式。例如:')}\n` +
      `${colors.red('type(scope): description')}\n` +
      `${colors.red('fix(个人中心: 修复预留信息字段长度验证')} \n\n` +
      `${colors.green('feat: 新增、修改 xxx 功能')} \n\n` +
      `${colors.green('docs: 变更 xxx 文档、注释')} \n\n` +
      `${colors.green('style: 变更 xxx 代码格式或注释')} \n\n` +
      `${colors.green('refactor: 重构 xxx 功能或方法（理论上不影响现有功能）')} \n\n` +
      `${colors.green('perf: 优化、提升性能的修改')} \n\n` +
      `${colors.green('test: 调试 xxx 功能')} \n\n` +
      `${colors.green('build:影响编译的更改相关门比如打包路径更改、npm过程更改等')} \n\n` +
      `${colors.green('chore: 改变构建流程、或者增加依赖库、工具等“')} \n\n` +
      `${colors.bgGreen('scope')}:${colors.red('表示 影响范围，可分为：模块、类库、方法等。')}\n` +
      `${colors.bgGreen('description')}:${colors.red(
        '”表示 简短描述，不要超过60个字，如果有相关Bug门建议在描述中加上\n'
      )}`
  )
  process.exit(1)
}
